package com.yuntai.pms.model.api;


import com.yuntai.pms.model.dto.StatPageViewQueryDto;
import com.yuntai.pms.model.dto.console.AipStatPageViewExample;
import com.yuntai.pms.model.dto.console.AppInfoPair;
import com.yuntai.pms.model.dto.console.PVUVlimitByDate;
import com.yuntai.pms.model.dto.console.StatPageViewResultDto;
import com.yuntai.pms.model.entity.AipStatPageView;

import java.util.Date;
import java.util.List;

/**
 * @ClassName: AipStatPageViewService
 * @Description: 控制中心接口PV/UV统计查询接口
 * @author caijg@hsyuntai.com
 * @date 2017年11月15日 下午3:19:43
 */
public interface AipStatPageViewService {

	 /**
	 * @Title: countByExample
	 * @Description: 查询总数
	 * @param example
	 * @return
	 */
	int countByExample(AipStatPageViewExample example);

	 /**
	 * @Title: selectByExample
	 * @Description: 数据查询
	 * @param example
	 * @return
	 */
	List<AipStatPageView> selectByExample(AipStatPageViewExample example);

	 /**
	 * @Title: process
	 * @Description: 页面所需数据格式处理
	 * @param dto
	 * @param list
	 * @return
	 */
	StatPageViewResultDto process(StatPageViewQueryDto dto, List<AipStatPageView> list);
	 
	 /**
	 * @Title: getAppInfoList
	 * @Description: 获得app和接口数据
	 * @param userId
	 * @param statStartDate, statEndDate
	 * @return  List<AppInfoPair>
	 */
	List<AppInfoPair> getAppInfoList(Long userId, Date statStartDate, Date statEndDate);
	
	 /**
	 * @Title: getPVUVByDate
	 * @Description: 查询app某日期下接口PV/UV数据
	 * @param isvAppId
	 * @param date
	 * @return
	 */
	PVUVlimitByDate getPVUVByDate(Long isvAppId, Date date);

}
